<html>
<head><meta charset="utf-8"><title>incremental caching, coinduction #83913 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html">incremental caching, coinduction #83913</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="234493596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234493596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234493596">(Apr 14 2021 at 12:59)</a>:</h4>
<p>Let's chat here?</p>



<a name="234493822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234493822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234493822">(Apr 14 2021 at 13:00)</a>:</h4>
<p>I've got to read <a href="https://github.com/rust-lang/rust/pull/83913#issuecomment-816251079">this comment</a> more closely, to start</p>



<a name="234494280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494280">(Apr 14 2021 at 13:03)</a>:</h4>
<blockquote>
<p>During the second compilation session, we do not appear to hit that coinductive cycle for some reason (I haven't yet figured out why).</p>
</blockquote>



<a name="234494300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494300">(Apr 14 2021 at 13:03)</a>:</h4>
<p>this seems to be a key point, <span class="user-mention" data-user-id="125294">@Aaron Hill</span></p>



<a name="234494383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494383">(Apr 14 2021 at 13:04)</a>:</h4>
<p>what's the issue this is aiming to fix?</p>



<a name="234494434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494434">(Apr 14 2021 at 13:04)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/83538">https://github.com/rust-lang/rust/issues/83538</a></p>



<a name="234494504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494504">(Apr 14 2021 at 13:05)</a>:</h4>
<p>During incremental compilation, we can end up with <code>EvaluatedToOk</code> on one session, and <code>EvaluatedToOkModuloRegions</code> in the other</p>



<a name="234494532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494532">(Apr 14 2021 at 13:05)</a>:</h4>
<p>it's been affecting many different crates</p>



<a name="234494568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494568">(Apr 14 2021 at 13:05)</a>:</h4>
<p>Since <a href="https://github.com/rust-lang/rust/pull/83007">https://github.com/rust-lang/rust/pull/83007</a>, this causes an ICE, rather than being silently ignored</p>



<a name="234494809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494809">(Apr 14 2021 at 13:07)</a>:</h4>
<p>my suspicion is that the first coinductive cycle happens as a result of a computing a query which gets cached on disk</p>



<a name="234494860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494860">(Apr 14 2021 at 13:07)</a>:</h4>
<p>So in the second incremental run, we don't end up executing it</p>



<a name="234494883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494883">(Apr 14 2021 at 13:07)</a>:</h4>
<p>Yes</p>



<a name="234494896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494896">(Apr 14 2021 at 13:08)</a>:</h4>
<p>I was wondering</p>



<a name="234494959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494959">(Apr 14 2021 at 13:08)</a>:</h4>
<p>I'm trying to remember how and to what extent we integrated incremental into the trait system</p>



<a name="234494992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234494992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234494992">(Apr 14 2021 at 13:08)</a>:</h4>
<p>I think...relatively little</p>



<a name="234495004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495004">(Apr 14 2021 at 13:08)</a>:</h4>
<p>Another possibility - there are multiple ways of hitting the cycle</p>



<a name="234495045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495045">(Apr 14 2021 at 13:08)</a>:</h4>
<p>for example:</p>



<a name="234495049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495049">(Apr 14 2021 at 13:08)</a>:</h4>
<p>but we do try to track dependencies so that we can do caching</p>



<a name="234495097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495097">(Apr 14 2021 at 13:09)</a>:</h4>
<p>afaik, we only create a DepNode for <code>evaluate_obligation</code></p>



<a name="234495130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495130">(Apr 14 2021 at 13:09)</a>:</h4>
<p>but we don't try to cache the actual result, or save the evaluation/selection caches in any way</p>



<a name="234495193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495193">(Apr 14 2021 at 13:09)</a>:</h4>
<p>I think we could have something like this: The obligation 'A' has two sub-obligations: 'B' and 'C'</p>



<a name="234495205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495205">(Apr 14 2021 at 13:09)</a>:</h4>
<p>both end up leading to a cycle</p>



<a name="234495227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495227">(Apr 14 2021 at 13:10)</a>:</h4>
<p>So, we have <code>A -&gt; B -&gt; A</code> and <code>A -&gt; C -&gt; A</code></p>



<a name="234495353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495353">(Apr 14 2021 at 13:10)</a>:</h4>
<p>During the first compilation session, we end up evaluating <code>B -&gt; A</code> earlier on in compilation (e.g. from a different query)</p>



<a name="234495454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495454">(Apr 14 2021 at 13:11)</a>:</h4>
<p>So when we go to evaluate <code>A</code>, we end up needing to process <code>A -&gt; C -&gt; A</code>, and use <em>that</em> as our coinductive cycle</p>



<a name="234495501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495501">(Apr 14 2021 at 13:11)</a>:</h4>
<p>During the second compilation session, we never end up populating the cache with the <code>B -&gt; A</code> result</p>



<a name="234495509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495509">(Apr 14 2021 at 13:11)</a>:</h4>
<p>I think I had better try to reproduce the problem</p>



<a name="234495571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495571">(Apr 14 2021 at 13:11)</a>:</h4>
<p>The instructions in <a href="https://github.com/rust-lang/rust/issues/83538#issue-842349947">https://github.com/rust-lang/rust/issues/83538#issue-842349947</a> should still work</p>



<a name="234495670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495670">(Apr 14 2021 at 13:12)</a>:</h4>
<p>one thing to note - I think I've seen the <code>EvaluatedToOk</code> / <code>EvaluatedToOkModuloRegions</code> mismatch happen in the opposite direction</p>



<a name="234495762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495762">(Apr 14 2021 at 13:12)</a>:</h4>
<p>in this issue, we get <code>EvaluatedToOkModuloRegions</code> in the first session, followed by <code>EvaluatedToOk</code> in second session</p>



<a name="234495775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495775">(Apr 14 2021 at 13:13)</a>:</h4>
<p>I think I saw an issue where it happened the other way</p>



<a name="234495780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234495780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234495780">(Apr 14 2021 at 13:13)</a>:</h4>
<p>let me see if I can find it</p>



<a name="234497139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234497139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234497139">(Apr 14 2021 at 13:21)</a>:</h4>
<p>I'm still getting my working directory setup</p>



<a name="234497156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234497156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234497156">(Apr 14 2021 at 13:21)</a>:</h4>
<p>took me a bit</p>



<a name="234497624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234497624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234497624">(Apr 14 2021 at 13:24)</a>:</h4>
<p>I guess I will check out your independent repro</p>



<a name="234499578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499578">(Apr 14 2021 at 13:35)</a>:</h4>
<p>Different question, <span class="user-mention" data-user-id="125294">@Aaron Hill</span>, why does it end up as "evaluated to ok modulo regions"?</p>



<a name="234499673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499673">(Apr 14 2021 at 13:36)</a>:</h4>
<p>(the first cycle)</p>



<a name="234499680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499680">(Apr 14 2021 at 13:36)</a>:</h4>
<p>do you know?</p>



<a name="234499759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499759">(Apr 14 2021 at 13:36)</a>:</h4>
<p>It happens as a result of the predicate <code>std::marker::PhantomData&lt;(ty::PathSegment, std::option::Option&lt;synom::tokens::Colon2&gt;)&gt; as std::marker::Unpin&gt;</code> evaluating to <code>EvaluatedToOkModuloRegions</code></p>



<a name="234499776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499776">(Apr 14 2021 at 13:37)</a>:</h4>
<p>which causes everthing else in the cycle to get marked as <code>EvaluatedToOkModuloRegions</code></p>



<a name="234499803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499803">(Apr 14 2021 at 13:37)</a>:</h4>
<p>I'm not sure what causes that predicate to get marked as <code>EvaluatedToOkModuloRegions</code> to begin with</p>



<a name="234499833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234499833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234499833">(Apr 14 2021 at 13:37)</a>:</h4>
<p>ok</p>



<a name="234500969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234500969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234500969">(Apr 14 2021 at 13:44)</a>:</h4>
<p>hmm, <span class="user-mention" data-user-id="125294">@Aaron Hill</span>, I tried your script on rust-lang/master but it didn't reproduce any failure</p>



<a name="234501056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501056">(Apr 14 2021 at 13:45)</a>:</h4>
<div class="codehilite"><pre><span></span><code>set -xe

cargo +rust-2-stage1 clean -p syn
cargo +rust-2-stage1 clean --release -p syn
git checkout ee2bcdef16fc2b23a7becdcd5dcb361e085db75a
cargo +rust-2-stage1 build --release -j 1
git checkout 9ba859003d06df084b860fa62780dbf9169870d6
cargo +rust-2-stage1 build --release -j 1
</code></pre></div>



<a name="234501061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501061">(Apr 14 2021 at 13:45)</a>:</h4>
<p>that script</p>



<a name="234501238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501238">(Apr 14 2021 at 13:46)</a>:</h4>
<p>hmm</p>



<a name="234501243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501243">(Apr 14 2021 at 13:46)</a>:</h4>
<p>what version of nightly are you using?</p>



<a name="234501390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501390">(Apr 14 2021 at 13:47)</a>:</h4>
<p>I'm not using nightly</p>



<a name="234501410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501410">(Apr 14 2021 at 13:47)</a>:</h4>
<p>I'm using a build of the latest HEAD, I <em>think</em></p>



<a name="234501419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501419">(Apr 14 2021 at 13:47)</a>:</h4>
<p>hmm</p>



<a name="234501436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501436">(Apr 14 2021 at 13:47)</a>:</h4>
<p>I'm able to reproduce on the latest nightly (2021-04-13)</p>



<a name="234501437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501437">(Apr 14 2021 at 13:47)</a>:</h4>
<p>wait</p>



<a name="234501444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501444">(Apr 14 2021 at 13:47)</a>:</h4>
<p>I'll test with the latest master</p>



<a name="234501459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501459">(Apr 14 2021 at 13:48)</a>:</h4>
<p>let me double check</p>



<a name="234501507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501507">(Apr 14 2021 at 13:48)</a>:</h4>
<p>can you see if you're able to reproduce it with that nightly?</p>



<a name="234501610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234501610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234501610">(Apr 14 2021 at 13:48)</a>:</h4>
<p>I'll try that</p>



<a name="234502056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502056">(Apr 14 2021 at 13:51)</a>:</h4>
<p>it does not reproduce with the nightly either, <span class="user-mention" data-user-id="125294">@Aaron Hill</span></p>



<a name="234502090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502090">(Apr 14 2021 at 13:51)</a>:</h4>
<p>hmm</p>



<a name="234502100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502100">(Apr 14 2021 at 13:52)</a>:</h4>
<div class="codehilite"><pre><span></span><code>athena. rustc +nightly -vV
rustc 1.53.0-nightly (132b4e5d1 2021-04-13)
binary: rustc
commit-hash: 132b4e5d167b7e622fcc11fa2b67b931105b4de1
commit-date: 2021-04-13
host: x86_64-unknown-linux-gnu
release: 1.53.0-nightly
LLVM version: 12.0.0
</code></pre></div>



<a name="234502101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502101">(Apr 14 2021 at 13:52)</a>:</h4>
<p>huh</p>



<a name="234502197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502197">(Apr 14 2021 at 13:52)</a>:</h4>
<div class="codehilite"><pre><span></span><code>rustc 1.53.0-nightly (132b4e5d1 2021-04-13)
binary: rustc
commit-hash: 132b4e5d167b7e622fcc11fa2b67b931105b4de1
commit-date: 2021-04-13
host: x86_64-unknown-linux-gnu
release: 1.53.0-nightly
LLVM version: 12.0.0
</code></pre></div>



<a name="234502226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502226">(Apr 14 2021 at 13:52)</a>:</h4>
<p>looks pretty similar :)</p>



<a name="234502251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502251">(Apr 14 2021 at 13:52)</a>:</h4>
<p>can you post the output you're getting?</p>



<a name="234502360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502360">(Apr 14 2021 at 13:53)</a>:</h4>
<p>yes</p>



<a name="234502383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502383">(Apr 14 2021 at 13:53)</a>:</h4>
<p>do I need to do some specific option to get incremental..? I wonder if I have something in my env that turns it off</p>



<a name="234502455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502455">(Apr 14 2021 at 13:54)</a>:</h4>
<p><a href="https://gist.github.com/Aaron1011/9beffb5ca05ed8d346e9b4bc837b4de3">https://gist.github.com/Aaron1011/9beffb5ca05ed8d346e9b4bc837b4de3</a></p>



<a name="234502504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502504">(Apr 14 2021 at 13:54)</a>:</h4>
<p>Do you have <code>CARGO_INCREMENTAL</code> set?</p>



<a name="234502517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502517">(Apr 14 2021 at 13:54)</a>:</h4>
<p><a href="https://hackmd.io/MwkFax2LTeSgoc9dTUVCTA">https://hackmd.io/MwkFax2LTeSgoc9dTUVCTA</a></p>



<a name="234502521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502521">(Apr 14 2021 at 13:54)</a>:</h4>
<p>if it's set to 0, then incremental is disabled</p>



<a name="234502533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502533">(Apr 14 2021 at 13:54)</a>:</h4>
<p>try unsetting it if it's set</p>



<a name="234502535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502535">(Apr 14 2021 at 13:54)</a>:</h4>
<p>not that I know of, but let me check</p>



<a name="234502662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234502662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234502662">(Apr 14 2021 at 13:55)</a>:</h4>
<p>Also, check if <code>target/release/incremental</code> exists</p>



<a name="234503187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234503187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234503187">(Apr 14 2021 at 13:59)</a>:</h4>
<p>it does, but it's empty</p>



<a name="234503206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234503206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234503206">(Apr 14 2021 at 13:59)</a>:</h4>
<p>I can probably add <code>-i</code> explicitly or something</p>



<a name="234503425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234503425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234503425">(Apr 14 2021 at 14:00)</a>:</h4>
<p>nm, there is no such option</p>



<a name="234503557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234503557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234503557">(Apr 14 2021 at 14:01)</a>:</h4>
<p>ok, setting <code>CARGO_INCREMENTAL=1</code> works</p>



<a name="234503577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234503577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234503577">(Apr 14 2021 at 14:01)</a>:</h4>
<p>I don't think I had it set before ...</p>



<a name="234677091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234677091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234677091">(Apr 15 2021 at 13:43)</a>:</h4>
<p>I've been poking here but I'm feeling a bit confused</p>



<a name="234677158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234677158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234677158">(Apr 15 2021 at 13:43)</a>:</h4>
<p><span class="user-mention" data-user-id="125294">@Aaron Hill</span> what RUSTC_LOG should I enable to best spy on the incremental caching etc?</p>



<a name="234677265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234677265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234677265">(Apr 15 2021 at 13:44)</a>:</h4>
<p>for example, reading the logs I see this:</p>



<a name="234677276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234677276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234677276">(Apr 15 2021 at 13:44)</a>:</h4>
<div class="codehilite"><pre><span></span><code>├┘rustc_trait_selection::traits::select::evaluate_predicate_recursively obligation=Obligation(predicate=Binder(TraitPredicate(&lt;quote::Tokens as std::marker::Unpin&gt;), []), depth=0), previous_stack=None
├─0ms DEBUG rustc_trait_selection::traits::select CACHE MISS, result=EvaluatedToOk
├─0ms DEBUG rustc_trait_selection::traits::select insert_evaluation_cache global, trait_ref=Binder(&lt;quote::Tokens as std::marker::Unpin&gt;, []), result=EvaluatedToOk
├─0ms DEBUG rustc_trait_selection::traits::select on_completion, depth=1, reached_depth=18446744073709551615
├─0ms DEBUG rustc_trait_selection::traits::select result=Ok(EvaluatedToOk)
┘rustc_trait_selection::traits::select::evaluate_predicate_recursively obligation=Obligation(predicate=Binder(TraitPredicate(&lt;quote::Tokens as std::marker::Unpin&gt;), []), depth=0), previous_stack=None
</code></pre></div>



<a name="234677343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234677343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234677343">(Apr 15 2021 at 13:44)</a>:</h4>
<p>which appears to be saying <code>EvaluatedToOk</code></p>



<a name="234677548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234677548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234677548">(Apr 15 2021 at 13:45)</a>:</h4>
<p>also dang this generates a lot of output :)</p>



<a name="234679527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234679527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234679527">(Apr 15 2021 at 13:56)</a>:</h4>
<p>ok, I'm finding the issue a bit more now at least</p>



<a name="234679557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234679557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234679557">(Apr 15 2021 at 13:56)</a>:</h4>
<p>I'm going to have to stop soon i'm afraid, but I'll return to this tomorrow</p>



<a name="234679573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234679573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234679573">(Apr 15 2021 at 13:56)</a>:</h4>
<p>for the record my current script is;</p>



<a name="234679593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/234679593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#234679593">(Apr 15 2021 at 13:56)</a>:</h4>
<div class="codehilite"><pre><span></span><code>set -xe

BRANCH=+rust-2-stage1
export CARGO_INCREMENTAL=1
export RUSTC_LOG=rustc_trait_selection::traits,rustc_query_system
export RUST_BACKTRACE=1

cargo $BRANCH clean -p syn
cargo $BRANCH clean --release -p syn
git checkout ee2bcdef16fc2b23a7becdcd5dcb361e085db75a
cargo $BRANCH build --release -j 1 2&gt;&amp;1 | rg -C 1000 &#39;quote::Token&#39;
git checkout 9ba859003d06df084b860fa62780dbf9169870d6
cargo $BRANCH build --release -j 1 2&gt;&amp;1 | rg -C 1000 &#39;quote::Token&#39;
</code></pre></div>



<a name="238143463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238143463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238143463">(May 10 2021 at 13:40)</a>:</h4>
<p>ok, poking at this again</p>



<a name="238163827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238163827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238163827">(May 10 2021 at 15:41)</a>:</h4>
<p>so</p>



<a name="238163838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238163838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238163838">(May 10 2021 at 15:41)</a>:</h4>
<p>i'm seeing something very confusing</p>



<a name="238163881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238163881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238163881">(May 10 2021 at 15:41)</a>:</h4>
<div class="codehilite"><pre><span></span><code>│ │ ├─0ms DEBUG rustc_trait_selection::traits::select check_evaluation_cache global, key=ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: Binder(&lt;std::vec::Vec&lt;proc_macro2::TokenTree&gt; as std::marker::Unpin&gt;, []) }, res=EvaluatedToOkModuloRegions
</code></pre></div>



<a name="238163966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238163966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238163966">(May 10 2021 at 15:42)</a>:</h4>
<p>(oh, I added some debugging)</p>



<a name="238164088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238164088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238164088">(May 10 2021 at 15:43)</a>:</h4>
<p>looking at <code>proc_macro2::TokenTree</code>, I see it being inserted as <code>EvaluatedToOk</code></p>



<a name="238164094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238164094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238164094">(May 10 2021 at 15:43)</a>:</h4>
<p>│ │ ├─13ms DEBUG rustc_trait_selection::traits::select insert_evaluation_cache global, key=ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: Binder(&lt;proc_macro2::TokenTree as std::marker::Unpin&gt;, []) }, result=EvaluatedToOk</p>



<a name="238164391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238164391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238164391">(May 10 2021 at 15:45)</a>:</h4>
<p>also for <code>Vec&lt;TokenTree&gt;</code>:</p>



<a name="238164394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238164394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238164394">(May 10 2021 at 15:45)</a>:</h4>
<p>│ │ ├─13ms DEBUG rustc_trait_selection::traits::select insert_evaluation_cache global, key=ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: Binder(&lt;std::vec::Vec&lt;proc_macro2::TokenTree&gt; as std::marker::Unpin&gt;, []) }, result=EvaluatedToOk</p>



<a name="238164477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238164477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238164477">(May 10 2021 at 15:45)</a>:</h4>
<p>but then later</p>



<a name="238164480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238164480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238164480">(May 10 2021 at 15:45)</a>:</h4>
<p>│ │ ├─0ms DEBUG rustc_trait_selection::traits::select check_evaluation_cache global, key=ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: Binder(&lt;std::vec::Vec&lt;proc_macro2::TokenTree&gt; as std::marker::Unpin&gt;, []) }, res=EvaluatedToOkModuloRegions</p>



<a name="238165328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238165328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238165328">(May 10 2021 at 15:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> not sure if you saw <a href="https://github.com/rust-lang/rust/issues/83538#issuecomment-835505371">https://github.com/rust-lang/rust/issues/83538#issuecomment-835505371</a></p>



<a name="238166005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238166005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238166005">(May 10 2021 at 15:55)</a>:</h4>
<p>I did not fully see it, but i was working my way to the same info-- that said, I disagree that this makes <a href="https://github.com/rust-lang/rust/issues/83913">#83913</a> a solution</p>



<a name="238166037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238166037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238166037">(May 10 2021 at 15:55)</a>:</h4>
<p>I also still haven't seen that <em>call</em>, which is odd</p>



<a name="238166223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238166223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238166223">(May 10 2021 at 15:56)</a>:</h4>
<p>by which I mean, I have debug outputs that <em>should</em> be called during the <code>on_completion</code> call, but I don't see them firing</p>



<a name="238167941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238167941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238167941">(May 10 2021 at 16:07)</a>:</h4>
<p>I should however try that for smaller repo case :)</p>



<a name="238176263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238176263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238176263">(May 10 2021 at 17:00)</a>:</h4>
<p>(hmm, I don't see the problem using that example)</p>



<a name="238176512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238176512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238176512">(May 10 2021 at 17:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> fyi I know on some examples debug asserts cause problems</p>



<a name="238176657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238176657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238176657">(May 10 2021 at 17:02)</a>:</h4>
<p>(since they can run extra queries)</p>



<a name="238188854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238188854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238188854">(May 10 2021 at 18:21)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> yes</p>



<a name="238188875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238188875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238188875">(May 10 2021 at 18:21)</a>:</h4>
<p>if you disable debug assertions, do you still get logs?</p>



<a name="238188880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238188880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238188880">(May 10 2021 at 18:21)</a>:</h4>
<p>did that change?</p>



<a name="238188889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238188889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238188889">(May 10 2021 at 18:21)</a>:</h4>
<p>You can enable them separately noe</p>



<a name="238188901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238188901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238188901">(May 10 2021 at 18:21)</a>:</h4>
<p>There's a debug-logging flag</p>



<a name="238188947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238188947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238188947">(May 10 2021 at 18:21)</a>:</h4>
<p>(of course, logs may also cause problems)</p>



<a name="238210730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238210730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238210730">(May 10 2021 at 20:57)</a>:</h4>
<p>oh, I forgot to mention that</p>



<a name="238210756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238210756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238210756">(May 10 2021 at 20:57)</a>:</h4>
<p>you need to disable debug-assertions for that minimized example to work, IIRC</p>



<a name="238210970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238210970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238210970">(May 10 2021 at 20:58)</a>:</h4>
<p>I might have even had to disable debuginfo (not debug logging) but some reason, but I unfortunately forgot to write down exactly what changes I made to my <code>config.toml</code></p>



<a name="238225454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238225454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238225454">(May 10 2021 at 23:09)</a>:</h4>
<p><span class="user-mention" data-user-id="125294">@Aaron Hill</span> ok, I can reproduce without the debug assertions</p>



<a name="238227528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238227528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238227528">(May 10 2021 at 23:33)</a>:</h4>
<p>Some notes as I trace:</p>



<a name="238227543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238227543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238227543">(May 10 2021 at 23:33)</a>:</h4>
<ul>
<li>The "modulo regions" arises because of <code>Box&lt;Ty, Global&gt;</code>. The <code>Unpin</code> requirement is:</li>
</ul>



<a name="238227722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238227722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238227722">(May 10 2021 at 23:35)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/1b30245ea1286df96d673015c4519c861e06977a/library/alloc/src/boxed.rs#L1675-L1676">link</a></p>



<a name="238227733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238227733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238227733">(May 10 2021 at 23:35)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span>: <span class="o">?</span><span class="nb">Sized</span><span class="p">,</span><span class="w"> </span><span class="n">A</span>: <span class="nc">Allocator</span><span class="o">&gt;</span><span class="w"> </span><span class="nb">Unpin</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nb">Box</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="n">A</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">A</span>: <span class="o">'</span><span class="nb">static</span> <span class="p">{}</span><span class="w"></span>
</code></pre></div>



<a name="238229686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238229686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238229686">(May 10 2021 at 23:57)</a>:</h4>
<p>my current theory is that the <code>reached_depth</code> mechanism is not quite right</p>



<a name="238229735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238229735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238229735">(May 10 2021 at 23:58)</a>:</h4>
<p>I'll have to dig more tomorrow or later though</p>



<a name="238275030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238275030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238275030">(May 11 2021 at 09:08)</a>:</h4>
<p>ok, I think I found the bug</p>



<a name="238275120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238275120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238275120">(May 11 2021 at 09:08)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/1b30245ea1286df96d673015c4519c861e06977a/compiler/rustc_trait_selection/src/traits/select/mod.rs#L2393-L2396">this code is overly conservative</a>, and it's causing results to get polluted with "modulo regions"</p>



<a name="238275162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238275162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238275162">(May 11 2021 at 09:08)</a>:</h4>
<p><code>First</code> is not a participant in the same cycle here</p>



<a name="238276401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238276401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238276401">(May 11 2021 at 09:19)</a>:</h4>
<p>reworking this cache to work more like the cache in chalk; not sure why I didn't do that the first time</p>



<a name="238276428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238276428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238276428">(May 11 2021 at 09:19)</a>:</h4>
<p>whoever did the reduction on this test case, god bless you <span aria-label="pray" class="emoji emoji-1f64f" role="img" title="pray">:pray:</span></p>



<a name="238276544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238276544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238276544">(May 11 2021 at 09:20)</a>:</h4>
<p>ok, ICE fixed, though I think I can make a cleaner PR</p>



<a name="238276665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238276665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238276665">(May 11 2021 at 09:21)</a>:</h4>
<p>I wonder if there's a cleaner test; how can we reveal the difference between <code>EvaluatedToOkModuloRegions</code> and <code>EvaluatedToOk</code>...</p>



<a name="238276771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238276771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238276771">(May 11 2021 at 09:22)</a>:</h4>
<p>...it seems to only be true for caching results</p>



<a name="238276803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238276803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238276803">(May 11 2021 at 09:23)</a>:</h4>
<p>.........ah, but we might be able to make a test where auto traits are incorrectly considered not to hold...?</p>



<a name="238277022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277022">(May 11 2021 at 09:25)</a>:</h4>
<p>...no, not obviously, I was a bit too clever for that, in that we clear the cache entries on failure...</p>



<a name="238277060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277060">(May 11 2021 at 09:25)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913/near/238276803">said</a>:</p>
<blockquote>
<p>.........ah, but we might be able to make a test where auto traits are incorrectly considered not to hold...?</p>
</blockquote>
<p>how would that work? Afaik auto traits also don't differentiate between <code>EvaluatedToOk</code> and <code>EvaluatedToOkModuloRegions</code> rn</p>



<a name="238277137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277137">(May 11 2021 at 09:26)</a>:</h4>
<p>no, I was thinking about this code:</p>



<a name="238277143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277143">(May 11 2021 at 09:26)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">            </span><span class="n">stack</span><span class="p">.</span><span class="n">cache</span><span class="p">().</span><span class="n">on_completion</span><span class="p">(</span><span class="n">stack</span><span class="p">.</span><span class="n">dfn</span><span class="p">,</span><span class="w"> </span><span class="o">|</span><span class="n">fresh_trait_ref</span><span class="p">,</span><span class="w"> </span><span class="n">provisional_result</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                </span><span class="bp">self</span><span class="p">.</span><span class="n">insert_evaluation_cache</span><span class="p">(</span><span class="w"></span>
<span class="w">                    </span><span class="n">obligation</span><span class="p">.</span><span class="n">param_env</span><span class="p">,</span><span class="w"></span>
<span class="w">                    </span><span class="n">fresh_trait_ref</span><span class="p">,</span><span class="w"></span>
<span class="w">                    </span><span class="n">dep_node</span><span class="p">,</span><span class="w"></span>
<span class="w">                    </span><span class="n">provisional_result</span><span class="p">.</span><span class="n">max</span><span class="p">(</span><span class="n">result</span><span class="p">),</span><span class="w"></span>
<span class="w">                </span><span class="p">);</span><span class="w"></span>
<span class="w">            </span><span class="p">});</span><span class="w"></span>
</code></pre></div>



<a name="238277185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277185">(May 11 2021 at 09:26)</a>:</h4>
<p>and in particular <code>provisional_result.max(result)</code></p>



<a name="238277209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277209">(May 11 2021 at 09:26)</a>:</h4>
<p>but in that code, this is guaranteed to only execute is <code>result</code> is <code>EvaluatedToOkModuloRegions</code> or higher</p>



<a name="238277226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277226">(May 11 2021 at 09:27)</a>:</h4>
<p>( I believe, I could add an assertion... )</p>



<a name="238277264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277264">(May 11 2021 at 09:27)</a>:</h4>
<p>I suspect the cache <em>could</em> be reworked to cache failure, mind you</p>



<a name="238277277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277277">(May 11 2021 at 09:27)</a>:</h4>
<p>I'm trying to think why I opted not to do that</p>



<a name="238277281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277281">(May 11 2021 at 09:27)</a>:</h4>
<p>Maybe there is some subtle reason it would cause problems in rustc</p>



<a name="238277357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277357">(May 11 2021 at 09:28)</a>:</h4>
<p>or maybe I just wasn't clever enough to see it at the moment</p>



<a name="238277767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238277767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238277767">(May 11 2021 at 09:32)</a>:</h4>
<p>(I don't know if we do the whole loop-to-fixed-point thing correctly, though? What <em>does</em> rustc do here...)</p>



<a name="238335739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335739">(May 11 2021 at 16:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> is there a plan to issue a new point release?</p>



<a name="238335762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335762">(May 11 2021 at 16:12)</a>:</h4>
<p>I have a fix for <a href="https://github.com/rust-lang/rust/issues/83538">#83538</a> that I think I am happy with.</p>



<a name="238335775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335775">(May 11 2021 at 16:12)</a>:</h4>
<p>I'm going to open a PR shortly</p>



<a name="238335789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335789">(May 11 2021 at 16:12)</a>:</h4>
<p>It's possible</p>



<a name="238335824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335824">(May 11 2021 at 16:12)</a>:</h4>
<p>Depends on how many and how confident we are</p>



<a name="238335839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335839">(May 11 2021 at 16:13)</a>:</h4>
<p>ok</p>



<a name="238335847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335847">(May 11 2021 at 16:13)</a>:</h4>
<p>well, I'll open the PR either way</p>



<a name="238335860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335860">(May 11 2021 at 16:13)</a>:</h4>
<p>I'd probably not if we're not sufficiently confident to re-enable by default</p>



<a name="238335875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335875">(May 11 2021 at 16:13)</a>:</h4>
<p>I figured i'd open one that is relatively "backport friendly"</p>



<a name="238335884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335884">(May 11 2021 at 16:13)</a>:</h4>
<p>and one with more extensive edits</p>



<a name="238335900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238335900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238335900">(May 11 2021 at 16:13)</a>:</h4>
<p>That sounds excellent</p>



<a name="238337151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337151">(May 11 2021 at 16:22)</a>:</h4>
<p>the biggest problem I see is no test</p>



<a name="238337199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337199">(May 11 2021 at 16:22)</a>:</h4>
<p>I was considering adding a <code>#[rustc_foo]</code> attribute that dumps internal state</p>



<a name="238337238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337238">(May 11 2021 at 16:22)</a>:</h4>
<p>I don't think a test based on the incremental fingerprint ICE will be very reliable</p>



<a name="238337263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337263">(May 11 2021 at 16:22)</a>:</h4>
<p>but I'll defer that</p>



<a name="238337572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337572">(May 11 2021 at 16:24)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/85186">https://github.com/rust-lang/rust/pull/85186</a></p>



<a name="238337732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337732">(May 11 2021 at 16:26)</a>:</h4>
<p>Yeah. I had musings last night about fuzzing the incremental state files or something. Definitely seems like a good idea in theory.</p>



<a name="238337788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337788">(May 11 2021 at 16:26)</a>:</h4>
<p>I think what I would like to do is</p>



<a name="238337823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337823">(May 11 2021 at 16:26)</a>:</h4>
<p>add a <code>-Zflag</code> or something that dumps the result of each cache entry to stdout</p>



<a name="238337848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337848">(May 11 2021 at 16:26)</a>:</h4>
<p>before my PR, the results from various trait evaluations come out wrong</p>



<a name="238337861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337861">(May 11 2021 at 16:27)</a>:</h4>
<p>and we could record them in the stderr output</p>



<a name="238337882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337882">(May 11 2021 at 16:27)</a>:</h4>
<p>I don't think there's a more reliable way to write this test</p>



<a name="238337912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337912">(May 11 2021 at 16:27)</a>:</h4>
<p>that seems fairly clear and also like something we could translate to chalk output etc in the future</p>



<a name="238337959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238337959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238337959">(May 11 2021 at 16:27)</a>:</h4>
<p>I guess we could make a <code>note:</code> call, I don't know that we have useful spans available to us</p>



<a name="238338502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238338502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238338502">(May 11 2021 at 16:31)</a>:</h4>
<p>I think just dumping to stderr for now seems entirely reasonable</p>



<a name="238379007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238379007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238379007">(May 11 2021 at 20:42)</a>:</h4>
<p>ok I whipped up this test</p>



<a name="238379858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238379858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238379858">(May 11 2021 at 20:49)</a>:</h4>
<p>interestingly, this doesn't seem to fix the syn case!</p>



<a name="238379984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238379984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238379984">(May 11 2021 at 20:50)</a>:</h4>
<p>oh</p>



<a name="238380019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380019">(May 11 2021 at 20:50)</a>:</h4>
<p>never mind, I didn't have my fix applied</p>



<a name="238380031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380031">(May 11 2021 at 20:51)</a>:</h4>
<p>though I do see some panic in bors</p>



<a name="238380131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380131">(May 11 2021 at 20:51)</a>:</h4>
<p>but I think that's just a broken assertion</p>



<a name="238380487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380487">(May 11 2021 at 20:54)</a>:</h4>
<p>Hey <span class="user-group-mention" data-user-group-id="692">@WG-traits</span> -- I saw <span class="user-mention" data-user-id="125294">@Aaron Hill</span>'s <a href="https://github.com/rust-lang/rust/pull/85186#issuecomment-838804252">comment</a> and I was thinking that maybe it'd be nice to schedule some time to do a walk through of this PR to help transmit the knowledge of how this caching works etc? This might be particularly nice considering the more extended version of this PR I was thinking of doing.</p>



<a name="238380593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380593">(May 11 2021 at 20:55)</a>:</h4>
<p>I'm down</p>



<a name="238380797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380797">(May 11 2021 at 20:56)</a>:</h4>
<p>ideal for me would be to use the wg-traits office hours tomorrow at <time datetime="2021-05-12T13:15:00Z">2021-05-12T09:15:00-04:00</time></p>



<a name="238380927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380927">(May 11 2021 at 20:57)</a>:</h4>
<p>annoyingly my effort to craft a test has failed so far -- can you make tests that build in lib mode?</p>



<a name="238380986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238380986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238380986">(May 11 2021 at 20:58)</a>:</h4>
<p>looks like yes</p>



<a name="238382826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238382826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238382826">(May 11 2021 at 21:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I'm really interested, zoom I guess?, if so please record it because I can't on mornings</p>



<a name="238390999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238390999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238390999">(May 11 2021 at 22:26)</a>:</h4>
<p>bah humbug, I haven't figured out how to get that test to fail yet :)</p>



<a name="238391050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238391050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238391050">(May 11 2021 at 22:27)</a>:</h4>
<p>oh it's (maybe) because of debug assertions</p>



<a name="238391056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238391056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238391056">(May 11 2021 at 22:27)</a>:</h4>
<p>I'm just going to remove that and give up</p>



<a name="238406513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238406513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238406513">(May 12 2021 at 01:19)</a>:</h4>
<p>+1 for recording, esp if it's at that time</p>



<a name="238438152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238438152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238438152">(May 12 2021 at 08:19)</a>:</h4>
<p>I could also do <time datetime="2021-05-12T18:00:00Z">2021-05-12T14:00:00-04:00</time> or <time datetime="2021-05-12T19:00:00Z">2021-05-12T15:00:00-04:00</time></p>



<a name="238438161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238438161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238438161">(May 12 2021 at 08:19)</a>:</h4>
<p>those would be ok too</p>



<a name="238470172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238470172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238470172">(May 12 2021 at 13:09)</a>:</h4>
<p>I think if we discuss this morning and record, that would be good</p>



<a name="238471759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238471759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238471759">(May 12 2021 at 13:19)</a>:</h4>
<p>here now</p>



<a name="238471933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238471933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238471933">(May 12 2021 at 13:20)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> <span class="user-mention" data-user-id="125294">@Aaron Hill</span> ether of you here? (or others)</p>



<a name="238471953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238471953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238471953">(May 12 2021 at 13:20)</a>:</h4>
<p>I am</p>



<a name="238471968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238471968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238471968">(May 12 2021 at 13:21)</a>:</h4>
<p>well you and I could walk through it :)</p>



<a name="238471973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238471973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238471973">(May 12 2021 at 13:21)</a>:</h4>
<p>you have r+ actually...</p>



<a name="238471992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238471992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238471992">(May 12 2021 at 13:21)</a>:</h4>
<p>Yes</p>



<a name="238472019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238472019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238472019">(May 12 2021 at 13:21)</a>:</h4>
<p>I quickly glanced over it</p>



<a name="238472024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238472024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238472024">(May 12 2021 at 13:21)</a>:</h4>
<p><a href="https://zoom.us/j/2694326451?pwd=T3YwaE9ZSzNLd3MzOWVxenV6cldOZz09">https://zoom.us/j/2694326451?pwd=T3YwaE9ZSzNLd3MzOWVxenV6cldOZz09</a></p>



<a name="238472176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238472176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238472176">(May 12 2021 at 13:22)</a>:</h4>
<p>there is also an assertion failure I didn't manage to reproduce yet</p>



<a name="238472203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238472203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238472203">(May 12 2021 at 13:22)</a>:</h4>
<p>ah, now I did</p>



<a name="238550123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238550123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238550123">(May 12 2021 at 21:51)</a>:</h4>
<p>for the people following at home, the recording is available at <a href="https://youtu.be/_tG2E9KVy5o">https://youtu.be/_tG2E9KVy5o</a></p>
<div class="youtube-video message_inline_image"><a data-id="_tG2E9KVy5o" href="https://youtu.be/_tG2E9KVy5o"><img src="https://uploads.zulipusercontent.net/7f74f49a4683cf7aaf42a05c31844f0eae6953bd/68747470733a2f2f692e7974696d672e636f6d2f76692f5f74473245394b5679356f2f64656661756c742e6a7067"></a></div>



<a name="238551737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238551737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238551737">(May 12 2021 at 22:06)</a>:</h4>
<p>ha! yes</p>



<a name="238551750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238551750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238551750">(May 12 2021 at 22:06)</a>:</h4>
<p>I was just going to tweet about that!</p>



<a name="238552291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552291">(May 12 2021 at 22:12)</a>:</h4>
<p>so I added this nice unit testing mechanism</p>



<a name="238552310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552310">(May 12 2021 at 22:12)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="cp">#[rustc_evaluate_where_clauses]</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"></span>
<span class="k">where</span><span class="w"></span>
<span class="w">    </span><span class="n">Ty</span>: <span class="nb">Unpin</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="n">Second</span><span class="o">&gt;</span>: <span class="nb">Unpin</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="n">First</span>: <span class="nb">Unpin</span><span class="p">,</span><span class="w"></span>
<span class="p">{</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">foo</span><span class="p">();</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="238552329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552329">(May 12 2021 at 22:12)</a>:</h4>
<p>produces output like:</p>



<a name="238552336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552336">(May 12 2021 at 22:12)</a>:</h4>
<div class="codehilite"><pre><span></span><code>error: evaluate(Binder(TraitPredicate(&lt;Ty as std::marker::Unpin&gt;), [])) = Ok(EvaluatedToOkModuloRegions)
  --&gt; foo.rs:42:5
   |
35 |     Ty: Unpin,
   |         ----- predicate
...
42 |     foo();
   |     ^^^

error: evaluate(Binder(TraitPredicate(&lt;std::vec::Vec&lt;Second&gt; as std::marker::Unpin&gt;), [])) = Ok(EvaluatedToOk)
  --&gt; foo.rs:42:5
   |
36 |     Vec&lt;Second&gt;: Unpin,
   |                  ----- predicate
...
42 |     foo();
   |     ^^^

error: evaluate(Binder(TraitPredicate(&lt;First as std::marker::Unpin&gt;), [])) = Ok(EvaluatedToOk)
  --&gt; foo.rs:42:5
   |
37 |     First: Unpin,
   |            ----- predicate
...
42 |     foo();
   |     ^^^
</code></pre></div>



<a name="238552345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552345">(May 12 2021 at 22:12)</a>:</h4>
<p>however</p>



<a name="238552351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552351">(May 12 2021 at 22:12)</a>:</h4>
<p>I still can't reproduce the bug this way, which is surprising!</p>



<a name="238552367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552367">(May 12 2021 at 22:13)</a>:</h4>
<p>I expect the evaluation to cache wrong results and it doesn't seem to</p>



<a name="238552713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552713">(May 12 2021 at 22:16)</a>:</h4>
<p><span aria-label="upside down" class="emoji emoji-1f643" role="img" title="upside down">:upside_down:</span></p>



<a name="238552729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238552729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238552729">(May 12 2021 at 22:16)</a>:</h4>
<p>That's a neat unit testing attribute though</p>



<a name="238596196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238596196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238596196">(May 13 2021 at 08:42)</a>:</h4>
<p>ok, I managed to reproduce the bug. The trick was trying both orderings of the where clause. For some reason that I don't know, reverse ordering works better <span aria-label="shrug" class="emoji emoji-1f937" role="img" title="shrug">:shrug:</span> -- I can sort of imagine why that might be, actually.</p>



<a name="238626988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238626988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238626988">(May 13 2021 at 14:17)</a>:</h4>
<p>Perf is looking bad currently: <a href="https://perf.rust-lang.org/status.html">https://perf.rust-lang.org/status.html</a></p>



<a name="238627044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238627044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238627044">(May 13 2021 at 14:17)</a>:</h4>
<p>Really bad</p>



<a name="238627690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238627690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238627690">(May 13 2021 at 14:22)</a>:</h4>
<p>queue length? We can prioritize things if necessary, FWIW</p>



<a name="238627868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238627868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238627868">(May 13 2021 at 14:23)</a>:</h4>
<p>oh you mean that PR taking a good bit longer on many benchmarks, yeah, that does look bad</p>



<a name="238627876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238627876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238627876">(May 13 2021 at 14:23)</a>:</h4>
<p>the PR is being benchmarked now so probably not the queue length</p>



<a name="238627886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238627886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238627886">(May 13 2021 at 14:23)</a>:</h4>
<p>doesn't always mean it's bad itself</p>



<a name="238627934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238627934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238627934">(May 13 2021 at 14:23)</a>:</h4>
<p>(sometimes we have a long-running PR on wall clock for other reasons, like S3 uploads being slow)</p>



<a name="238628064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238628064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238628064">(May 13 2021 at 14:24)</a>:</h4>
<p>better to wait for the final results :)</p>



<a name="238628179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238628179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238628179">(May 13 2021 at 14:25)</a>:</h4>
<p>Right :) Definitely wait for final results. But just saw that some of the tests are like 3x as long as expected</p>



<a name="238628910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238628910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238628910">(May 13 2021 at 14:30)</a>:</h4>
<p>yeah initial results (after I bumped it so they'd show) do look fine - <a href="https://perf.rust-lang.org/compare.html?start=72d07257ed46c70bcaf719e15882af539d0a5155&amp;end=61b32d567658b13ad4d86cc5fa7c5a4b76bae0e0&amp;stat=instructions%3Au">https://perf.rust-lang.org/compare.html?start=72d07257ed46c70bcaf719e15882af539d0a5155&amp;end=61b32d567658b13ad4d86cc5fa7c5a4b76bae0e0&amp;stat=instructions%3Au</a></p>



<a name="238628939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238628939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238628939">(May 13 2021 at 14:30)</a>:</h4>
<p>looks like the s3 uploads are being really slow, though I don't know why</p>



<a name="238629031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238629031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238629031">(May 13 2021 at 14:31)</a>:</h4>
<p>Phew</p>



<a name="238629057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238629057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238629057">(May 13 2021 at 14:32)</a>:</h4>
<p>I was concerned for a bit</p>



<a name="238630082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238630082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238630082">(May 13 2021 at 14:38)</a>:</h4>
<p>I would've been quite surprised</p>



<a name="238630107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/incremental%20caching%2C%20coinduction%20%2383913/near/238630107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/incremental.20caching.2C.20coinduction.20.2383913.html#238630107">(May 13 2021 at 14:38)</a>:</h4>
<p>though we do a few more traversals of the hashmap</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>